将 Ruby Sinatra 的 ADAL 示例映射到 Active Directory

Posted

技术标签:

【中文标题】将 Ruby Sinatra 的 ADAL 示例映射到 Active Directory【英文标题】:Mapping ADAL Sample for Ruby Sinatra to Active Directory 【发布时间】:2018-10-24 05:29:18 【问题描述】:

我正在尝试运行 Azure Active Directory Library for Ruby 中提供的 Sinatra 示例应用程序:https://github.com/AzureAD/azure-activedirectory-library-for-ruby。样本在这里:https://github.com/AzureAD/azure-activedirectory-library-for-ruby/tree/dev/samples/authorization_code_example

提供的 README.md 文件告诉我需要这样做:

    在您的 Azure Active Directory 帐户下注册一个 Web 应用程序。 将CLIENT_IDCLIENT_SECRETTENANT 替换为您的值。

我的问题是不清楚如何将这些值中的任何 3 个映射到我在 Active Directory 中设置的 Web 应用程序可用的各种字段。

我猜TENANT 映射到一个 URL,该 URL 会将我的应用程序指向我们的 ActiveDirectory 配置。

我猜CLIENT_ID 映射到我的网络应用程序的应用程序 ID

我很不确定CLIENT_SECRET

我正在寻找这三个字段的清晰度以及我需要做的任何其他事情以使此示例正常工作。

【问题讨论】:

我最终通过这篇文章从头开始使用 OAuth2.0:docs.microsoft.com/en-us/azure/active-directory/develop/… 并且根本没有使用用于 Ruby 的 ADAL 库。 【参考方案1】:

这似乎有效:

CLIENT_ID 是已配置 Web 应用的 AD 应用注册设置中显示的应用 ID。

CLIENT_SECRET 是一个密码值,是在 Web 应用详细信息的“密钥”部分中设置的密码。

TENANT 应该是 AD 租户的注册域名。 见:https://msdn.microsoft.com/Library/Azure/Ad/Graph/howto/azure-ad-graph-api-operations-overview?f=255&MSPPError=-2147217396#TenantIdentifier

【讨论】:

请注意,该示例不能完全正常工作。第 78 行的图形 API 调用已过期。 这个示例的回复 URL 应该是什么?我不断收到错误“请求中指定的回复 url 与为应用程序配置的回复 url 不匹配” @Colbs 重要的是回复 URL 与 Azure AD 门户上的应用注册中配置的回复 URL 相同。

以上是关于将 Ruby Sinatra 的 ADAL 示例映射到 Active Directory的主要内容,如果未能解决你的问题,请参考以下文章

Sinatra / Warden / Ruby - 如何确保我的用户只能使用单个会话登录?

使用 ruby​​、Sinatra 和 Mandrill 如何从 api 调用访问单个元素并打印为 HTML?

ruby Twilio Sinatra

ruby Sinatra API REST CRUD

ruby sinatra_test.rb

ruby Sinatra路线版本.rb