【问题标题】:openid-connect client in ruby with example code带有示例代码的 ruby​​ 中的 openid-connect 客户端
【发布时间】:2022-04-20 21:24:36
【问题描述】:

我想从需要 openid-connect 授权的 API 读取数据。我的客户端应该是用 ruby​​ 编写的,所以我可以在任务中使用它来将数据导入到我的 rails 应用程序中。

我在theapi/.well-known/openid-configuration 下获得了一个配置,还有一个client_id 和一个client_secret

在我进行一些研究之前从未使用过 openid 并发现以下可能有助于获得身份验证令牌的宝石:

这两个 gem 都缺乏任何文档或示例来入门,实际上我什至不确定它们是否对我的案例有用。

还有一个类似的 SO-post,但它已有 5 年历史,答案为零: Ruby Openid connect library with client consumption example

谁能帮我举一个简单的例子,说明如何在 ruby​​ 中授权 openid_connect,可能使用提到的 gem 之一?

【问题讨论】:

  • 有什么更新或答案吗?
  • @ZiaUlRehmanMughal 你能找到任何文档或示例吗?

标签: ruby-on-rails ruby openid-connect


【解决方案1】:

我遇到了同样的问题,并找到了一个很好的教程来解决这个挑战FusionAuth

您的 gemfile 中需要这 2 个 gem: gem 'jwt'gem 'oauth2'

您还可以在替换身份服务器的实际值时初始化 OAuth 客户端:

@oauth_client = OAuth2::Client.new(Rails.configuration.x.oauth.client_id,
                                   Rails.configuration.x.oauth.client_secret,
                                   authorize_url: '/oauth2/authorize',
                                   site: Rails.configuration.x.oauth.idp_url,
                                   token_url: '/oauth2/token',
                                   redirect_uri: Rails.configuration.x.oauth.redirect_uri)

通过初始化 OAuthClient,您可以执行所需的 OAuth 流程。

对于 password_credentials 的授权,您可以使用:

response = @oauth_client.client_credentials.get_token
token = response.token

您可以在此处找到更多授权类型参考:OAuth2 Docs

这两个资源应该使您能够完成与任何 IdentityServer 的集成。希望这些资源保持更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    相关资源
    最近更新 更多