Как использовать единый вход с RingCentral C # SDK? - PullRequest
0 голосов
/ 21 сентября 2018

При использовании ClientCK для клиента RingCentral C #, как я могу использовать единый вход (SSO), который нам необходим для нашей производственной среды?SDK работает нормально в среде Sandbox без единого входа.

Я использую авторизацию в соответствии с документацией, но это работает только для аутентификации пароля RingCentral, а не для единого входа.

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

Это для текущего и старого SDK:

1 Ответ

0 голосов
/ 21 сентября 2018

Единая регистрация поддерживается только через поток грантов OAuth 2.0 с кодом авторизации, который предоставит пользователю окно входа в систему с кнопкой SSO, которая перенаправит пользователя на веб-сайт SAML Identity Provider (IdP) для аутентификации на основе SSO.

Демонстрационный код для того, как сделать это с помощью двух C # SDK, доступен здесь:

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

Вот выдержка, показывающая две конечные точки для домашней страницы и OAuthURI перенаправления:

    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
        };
...