Moodle plugins directory: Azure AD B2C Connect: Versions: 3.11.0.1 | Moodle.org
Azure AD B2C Connect
Authentication ::: auth_azureb2c
Maintained by Gopal Sharma
The Azure AD B2C Connect plugin provides registering of a new user and single-sign-on functionality using configurable identity providers, scope and custom policies of Azure B2C.
Azure AD B2C Connect 3.11.0.1
Moodle 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 4.0, 4.1
Released: Thursday, 14 October 2021, 2:50 PM
Code prechecks
phplint
phpcs42 | 24
js
css20 | 0
phpdoc61 | 2
savepoint
thirdparty
grunt1 | 1
shifter
mustache
gherkin
HTML | XMLUpdate SSO
Update SSO issue with other applications like Drupal using the same Azure AD B2C tenants.
Edit Profile
also added an edit/update profile information into Azure AD B2C and reflect the same changes in Moodle.
For edit/update profile(Azure AD B2C profile) to work, one needs to do the following
Add the following code to the theme's profile.php
and if you are not using the customize page for profile, then add it to the layout
page which the profile page will use.
<?php
$id_token = "";
if(!empty($_COOKIE['id_token'])) {
$id_token = $_COOKIE['id_token'];
$idtoken = explode("=",$id_token);
}
$editcheck = get_user_preferences('auth_azureb2c_edit');
if($editcheck == 0 || $editcheck == 2 ) {
if($editcheck == 0) {
set_user_preference('auth_azureb2c_edit', 2);
header("Refresh:0");
}
if($editcheck == 2) {
$userid = optional_param('id', null, PARAM_INT);
if(!empty($idtoken[1]) && ($idtoken[0] =="#id_token")) {
updateuserazureb2c($userid, $idtoken[1]);
$_COOKIE['id_token'] = null;
set_user_preference('auth_azureb2c_edit', 1);
}
}
}
?>
<?php
$url = get_config('auth_azureb2c', 'editprofileendpoint')."&client_id=". get_config('auth_azureb2c', 'clientid')."&
nonce=defaultNonce&redirect_uri=". $CFG->wwwroot."/auth/azureb2c/&scope=openid&response_type=id_token";
?>
<a href=""><?php echo get_string('editmyprofile'); ?></a>
Add the folloing function to theme's lib.php
function updateuserazureb2c($userid, $id_token) {
global $CFG, $OUTPUT, $USER, $PAGE, $DB;
require_once("{$CFG->dirroot}/auth/azureb2c/classes/loginflow/base.php");
$idtoken = \auth_azureb2c\jwt::instance_from_encoded($id_token);
$username = $idtoken->claim('oid');
if (!empty($username)) {
$firstname = $idtoken->claim('given_name');
$lastname = $idtoken->claim('family_name');
$country = $idtoken->claim('country');
$countryval = "";
if (!empty($country)) {
$countries = get_string_manager()->get_list_of_countries();
foreach ($countries as $countrykey => $countryvalue) {
$countryb2c = $country;
$countrymoodle = $countryvalue;
if($countrymoodle == $countryb2c)
$countryval = $countrykey;
}
}
$gender = $idtoken->claim('extension_WP_Gender');
$userupdate = new \stdClass;
$userupdate->id = $userid;
if (!empty($firstname))
$userupdate->firstname = $firstname;
if (!empty($lastname))
$userupdate->lastname = $lastname;
if (!empty($countryval))
$userupdate->country = $countryval;
$DB->update_record('user', $userupdate);
$USER->firstname = $firstname;
$USER->lastname = $lastname;
$USER->country = $countryval;
return true;
}
}
Issues
Please post issues for this plugin to: https://github.com/GopalSharma/moodle-auth_azureb2c/issues
Version information
- Version build number
- 2021101400
- Version release name
- 3.11.0.1
- Maturity
- Stable version
- MD5 Sum
- b98daf2353fbf0af680375935be95596
- Supported software
- Moodle 3.5, Moodle 3.6, Moodle 3.7, Moodle 3.8, Moodle 3.9, Moodle 3.10, Moodle 3.11, Moodle 4.0, Moodle 4.1
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.5
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.6
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.7
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.8
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.9
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.10
- The more recent release 4.1.0 (2023030700) exists for Moodle 3.11
- The more recent release 4.1.0 (2023030700) exists for Moodle 4.0
- The more recent release 4.1.0 (2023030700) exists for Moodle 4.1
Version control information
- Version control system (VCS)
- GIT
- VCS repository URL
- VCS tag
- v3.11.0.1
Default installation instructions for plugins of the type Authentication
- Make sure you have all the required versions.
- Download and unpack the module.
- Place the folder (eg "myauth") in the "auth" subdirectory.
- Visit http://yoursite.com/admin to finish the installation