为了获得有关该主题的指导,因为我真的坚持这一点,我有一个用于PHP的应用程序的内部URL,我想连接到Azure Active Directory。
到目前为止,我已经使用SimpleSAML对example from Microsoft进行了审核,但它确实已经过时了,而且我很难为新的SimpleSAMl代码调整它。
是否有更好的方法将Web应用程序与Azure AD集成?我在某处读到了我可能会使用Mobile Services的开头但我想听听以前的经验,了解使用Azure AD登录PHP的最佳/最新方法是什么?
- 编辑 -
通过集成,我的意思是允许人们从Azure AD中验证和检索电子邮件地址或EmployeeID,以提供SSO支持。
答案 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请求来获取访问令牌:
构建URL将重定向到sso页面,登录后我们可以获得将在下一步中使用的code
值。
然后我们可以使用访问令牌将请求的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。请参阅此tutorials和video。对于此操作,您需要具有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的帖子。