php - 我可以在现有 PHP 应用程序中实现 Azure AD 身份验证吗

标签 php azure oauth-2.0 azure-active-directory

我与一组现有用户构建并维护了一个 PHP Web 应用程序。身份验证是应用程序内的用户名密码。

现在需要通过现有的 Azure AD 帐户向大量新用户提供访问权限。客户端希望这些用户能够使用他们的 Azure 身份登录。现有用户将继续按照目前的方式进行身份验证。

我认为这与 Facebook/Google 等 SSO 类似,但我正在努力在 Microsoft 资源或任何支持此功能的库中找到任何示例。我所描述的用例是有效的,并且可以通过 Azuer AD 身份验证来实现吗?

最佳答案

方法1:基本上,要从PHP Web应用程序通过Azure AD访问资源,您可以引用Web Application to Web API

要将 Azure AD 集成到 PHP Web 应用程序中,我们需要遵循授权代码授予流程步骤来构建多个自定义 HTTP 请求。例如。要通过OAuth 2.0协议(protocol)获取访问 token ,我们应该引用Authorization Code Grant Flow上的步骤。 。一般来说,我们会构建2个HTTP请求来获取访问 token :

  1. 请求授权代码。

enter image description here

  • 使用授权代码请求访问 token : enter image description here
  • 请检查此PHP test project供您引用

    方法 2:

    请引用此github代码:https://github.com/CoasterKaty/PHPAzureADoAuth

    尝试执行以下步骤

    1. 创建应用注册 Azure AD > 应用注册,然后单击“新建注册”。

    enter image description here

    2)创建应用注册后复制客户端ID租户ID,将其粘贴到配置中的_OAUTH_SERVER和_OAUTH_CLIENTID中.inc。 _OAUTH_SERVER 条目应为 login.microsoftonline.com URL,但将 TENANT_ID 替换为您的目录(租户)ID

    enter image description here

    3)添加新的 secret 并选择适当的时间。不要忘记您需要在过期之前进行更新,因此请在日历中记下。完成后,复制 secret 值并将其粘贴到 config.inc 内的 _OAUTH_SECRET

    4) 之后,您可以浏览到您的应用程序并提示登录。第一次登录时,系统会要求您授予租户中每个人的权限(假设您具有适当的管理权限)。

    enter image description here

    关于php - 我可以在现有 PHP 应用程序中实现 Azure AD 身份验证吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69266268/

    相关文章:

    当我们使用派生列表达式生成器时,Azure 数据工厂管道无法使用 cosmos DB,它的列数不超过 19

    javascript - 使用 php 不使用 jQuery 进行 Ajax 表单验证

    php - 使用 PHP 框架编写 Web 启动程序

    azure - az rest 命令获取前几个月/日期的使用详细信息。 (微软.消费)

    firebase - 使用 Firebase OpenID Connect 提供程序作为 Azure Function App 身份提供程序

    python - 需要让 OAuth 'flow' 在 Python 上的 Google Drive 上流动,以实现独立的 py 应用程序

    asp.net - 使用 JWT 进行模拟

    django - 授予访问 token 类型authorization_code 出现错误 invalid_client

    php - 为什么我在使用 w3school 教程时遇到错误?

    php - 如何通过 php 中的 iconv 库获取支持的编码列表?