从PHP Web应用程序

时间:2015-11-03 21:50:49

标签: php azure active-directory simplesamlphp

为了获得有关该主题的指导,因为我真的坚持这一点,我有一个用于PHP的应用程序的内部URL,我想连接到Azure Active Directory。

到目前为止,我已经使用SimpleSAML对example from Microsoft进行了审核,但它确实已经过时了,而且我很难为新的SimpleSAMl代码调整它。

是否有更好的方法将Web应用程序与Azure AD集成?我在某处读到了我可能会使用Mobile Services的开头但我想听听以前的经验,了解使用Azure AD登录PHP的最佳/最新方法是什么?

- 编辑 -

通过集成,我的意思是允许人们从Azure AD中验证和检索电子邮件地址或EmployeeID,以提供SSO支持。

2 个答案:

答案 0 :(得分:6)

Azure AD支持多种方案,具体取决于您使用Azure AD的方式。基本上,要从PHP Web应用程序通过Azure AD访问资源,您可以参考Web Application to Web API部分来了解此方案并开始使用。

要在PHP Web应用程序中集成Azure AD,我们需要遵循授权代码授予流程步骤来构建多个自定义HTTP请求。例如。要通过OAuth 2.0协议获取访问令牌,我们应该参考Authorization Code Grant Flow上的步骤,通常,我们将构建2个HTTP请求来获取访问令牌:

1,申请授权码 enter image description here

构建URL将重定向到sso页面,登录后我们可以获得将在下一步中使用的code值。

2,使用授权码请求访问令牌: enter image description here

然后我们可以使用访问令牌将请求的Authorization标头中带有“Bearer”标识的JWT字符串添加到资源Web API。

以下是Azure提供的PHP test project供您参考。

答案 1 :(得分:4)

  
    

我们正在将AD迁移到Azure AD,我们希望对内部Web应用程序提供SSO支持,这样当他们登录到PC时,使用azure app proxy,他们会自动在PHP网络应用程序。这可能吗?

  

@Vladimir,根据我的经验,这是可能的。您可以参考some scenarios。您可能需要使用Azure AD Connect将本地AD同步到Azure AD,并启用Azure AD SSO以在您的方案中与您的php应用程序集成。

首先,如果要在Azure AD上集成内部部署AD,则应使用Azure AD Connect工具,该工具用于将AD同步到Azure AD。请参阅此tutorialsvideo。对于此操作,您需要具有IT管理员权限。

其次,您需要在Azure门户上使用Federated Single Sign-On和其他方法。您可能需要像这个视频一样配置PHP应用程序:https://channel9.msdn.com/Blogs/Open/Using-SimpleSAML-to-authenticate-PHP-applications-with-Azure-AD。 如果您想获取用户信息,可能需要使用Azure Graph API作为Gary的帖子。