2016-11-19 24 views
1

您好用PHP编写的应用程序使用MySQL作为数据库后端,我想使用我的AD Azure的登录身份验证。php:简单的天蓝色登录信息

我发现了几个搜索谷歌文件的例子,但它们对于我的需求来说太复杂了。

所以,我有这样一个链接:https://login.microsoftonline.com/common/oauth2/authorize?client_id=$myidclient&redirect_uri=$mydirapp&response_type=code

成功登录后,我重定向到/mydirapp/index.phpHTTP GET命名值代码

我的问题:(在我的文件索引.PHP)我想
- 使用此身份验证 的email address - 这个用户的firstnamelastname

我知道我需要一个名为'代码' 的GET值的令牌,通过这个令牌,我可以问我的AD。

+0

Hi @ kadel,你现在有什么更新吗? –

回答

0

我不明白,你的登录不成功。实际上,Azure AD使用OAuth 2.0 grand flow实施身份验证和授权您的用户。

而您提供的网址是生成身份验证代码的第一步,那么您将用户引导到此端点,任何身份验证发生失败,都不会重定向到您的URI。该错误消息将在IDP页面中显示给您的用户。

如果您的用户使用代码参数重定向到您的uri,这意味着此用户已在Azure AD中成功登录。

验证通过后,您的用户需要将access_tokenAuthorization请求标头设置到您的服务器。如果你想获得认证的用户的信息,您可以尝试使用下面的代码片段:

$headers = getallheaders(); 
$token = (explode(' ',$headers['Authorization']))[1]; 
list($headb64, $bodyb64, $cryptob64) = explode('.',$token); 
$payload = json_decode(base64_decode($bodyb64)); 

echo $payload->{'family_name'}; 
echo $payload->{'given_name'}; 
echo $payload->{'upn'}; //email 

您可以参考https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios?toc=%2fazure%2factive-directory%2fdevelop%2ftoc.json#claims-in-azure-ad-security-tokens在有效载荷支持的要求。

任何进一步的关注,请随时让我知道。