我想使用 Azure AD 作为在 Intranet 服务器上运行的应用程序的身份验证提供程序来试用 Oauth2 身份验证。
后端无法访问互联网(没有代理(。这包括login.microsoftonline.com
.使用该应用程序的客户端可以访问内联网以及互联网。
OAuth2 是否要求服务器使用"默认"流访问身份验证提供程序?
这实际上取决于使用的流。 例如,"授权代码授予流"还需要从服务提供商 (SP( 位置(在您的情况下为 Grafana 应用程序(访问令牌端点。
这不仅仅是关于元数据。实际上,某些 SP 需要与用户信息端点或自检端点"对话"。因此,可以有更多的端点,这些端点应该可用。
这略微取决于所使用的流。 授权代码流要求后端将收到的代码发布到 Azure AD,因此你需要访问权限。
如果 API 不使用 Azure AD令牌调用其他 API,则它可能根本不联系 Azure AD。
但是您需要对签名密钥等进行硬编码,您可以通过OpenID元数据获得,例如https://login.microsoftonline.com/your-tenant-id/v2.0/.well-known/openid-configuration
. 如果使用 v1 终结点/v1 令牌,则可以从 URL 中删除 v2.0。
通常,您的应用程序会在启动时自动加载此文档。 至少大多数库都这样做。
如果您在应用中对此信息进行硬编码,您当然要负责更新它,而不是自动更新它。