代码之家  ›  专栏  ›  技术社区  ›  Grokify Milad

如何在RingCentral C#SDK中使用SSO?

  •  -1
  • Grokify Milad  · 技术社区  · 7 年前

    根据文档,我使用如下授权,但这只适用于RingCentral密码验证,而不是SSO。

    await rc.Authorize("username", "extension", "password");
    

    这适用于当前和旧SDK:

    1 回复  |  直到 7 年前
        1
  •  0
  •   Grokify Milad    7 年前

    只有通过授权码OAuth 2.0授权流才支持单点登录,授权码OAuth 2.0授权流将向用户显示一个带有SSO按钮的登录窗口,该按钮将用户重定向到SAML身份提供程序(IdP)网站,以进行基于SSO的身份验证。

    下面提供了如何使用两个C#SDK实现这一点的演示代码:

    https://github.com/ringcentral/ringcentral-demos-oauth/tree/master/csharp-nancy

    以下摘录显示了homepage和OAuth重定向URI的两个端点:

        public DefaultModule()
        {
            var authorizeUri = rc.AuthorizeUri(Config.Instance.RedirectUrl, MyState);
            var template = File.ReadAllText("index.html");
            Get["/"] = _ =>
            {
                var tokenJson = "";
                var authData = rc.token;
                if (rc.token != null && rc.token.access_token != null)
                {
                    tokenJson = JsonConvert.SerializeObject(rc.token, Formatting.Indented);
                }
                var page = Engine.Razor.RunCompile(template, "templateKey", null,
                    new { authorize_uri = authorizeUri, redirect_uri = Config.Instance.RedirectUrl, token_json = tokenJson });
                return page;
            };
            Get["/callback"] = _ =>
            {
                var authCode = Request.Query.code.Value;
                rc.Authorize(authCode, Config.Instance.RedirectUrl);
                return ""; // js will close this window and reload parent window
            };
    
    推荐文章