【问题标题】:Integrate my web api with google drvie api and okta openid connect将我的 web api 与 google drive api 和 okta openid connect 集成
【发布时间】:2021-09-10 16:06:56
【问题描述】:

我有一个调用 google drive api 的 .Net core web Api。 google drive api应该使用Okta验证api调用并授权。如何实现?

  • 我应该在Okta仪表板中设置身份验证应用程序并生成客户端ID和身份验证令牌吗?
  • 在调用google api之前,哪个会用于从Okta获取不记名令牌并与google api共享?
  • 是否会在 google 管理控制台中注册并生成令牌?

api 的域将是 google.api.com ...所以它不会去Okta 进行身份验证

【问题讨论】:

    标签: oauth google-api google-drive-api google-oauth okta


    【解决方案1】:

    在您代表您的用户获得对 google api 的访问权之后,您对 Okta 网站的操作将是。来自 Okta 的不记名令牌不会授予您访问 google api 的权限,您需要通过 google 授权服务器来获取它。

    为了访问 Google Drive api 和访问私人用户数据。该数据的所有者需要授权您的访问。

    为此,我们使用名为Oauth2 的东西。您将遇到的问题是,您说您正在使用 Web api 调用 Google,您需要在用户可以授权您的应用程序访问他们的数据的一侧创建一个 Web 应用程序。您需要在Google Developer console 上向谷歌注册您的应用程序。创建 Web 客户端凭据。然后,当用户授权您的应用程序访问他们的数据时,您将需要将刷新令牌存储在与用户关联的系统中。

    然后您的 web api 将能够通过加载刷新令牌并请求新的访问令牌来访问用户数据。

    目前只有一个示例 web-applications-asp.net-core-3 用于 .net 核心 Web 应用程序,它没有显示如何存储您需要解决的刷新令牌。

    我确实有一个关于使用 google people api 设置 asp .net 核心的视频,它可能会给你一个起点 How to get a Google users profile information, with C#. 以及一个关于如何创建 How to create Google Oauth2 web application credentials in 2021. 的视频

    【讨论】:

    • 客户告诉他们有 googke 工作区。他们使用 okta sso 登录。
    • 没关系,你仍然需要在谷歌开发者控制台上创建一个项目,并通过谷歌的誓言服务器创建你的令牌。除了工作空间包含谷歌驱动器访问之外,谷歌驱动器 API 与工作空间无关。而Okta与谷歌授权无关。
    • 因此,此文档support.google.com/a/topic/7579248 不适用于访问 api 时...我认为我正在考虑的解决方案仅适用于应用程序之间。不是为了访问 api。感谢您快速详细的回复。我已经通过邮递员测试了谷歌授权的设置。
    • 记住登录是开放的 id 连接它不是 Oauth2。您的混合身份验证和授权。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多