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

时间:2018-09-21 19:14:30

标签: c# oauth-2.0 ringcentral

使用RingCentral C#Client SDK时,如何使用生产环境所需的单点登录(SSO)?该SDK在没有SSO的沙盒环境中运行良好。

我正在按照文档使用以下授权,但这仅适用于RingCentral密码身份验证,不适用于SSO。

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

这适用于当前和较旧的SDK:

1 个答案:

答案 0 :(得分:0)

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

有关如何使用两个C#SDK完成此操作的演示代码,请参见:

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

以下摘录显示了首页和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
        };