2

デフォルトでは、AppAuthは認証リクエストでS256 PKCEコード チャレンジを送信します。コード チャレンジ方式のみをサポートするサーバーと相互運用する必要がある場合plain、認証要求をどのように構成すればよいですか?

4

1 に答える 1

3

iOS : コンストラクターを使用して PKCE パラメーターをオーバーライドできますOIDAuthorizationRequest initWithConfiguration:clientId:scope:redirectURL:responseType:state:codeVerifier:codeChallenge:codeChallengeMethod:additionalParameters:。これは、カスタム PKCE メソッドを送信するために使用できます (ライブラリは のみをサポートしますS256)。

// builds authentication request
NSString *codeVerifier = [OIDAuthorizationRequest generateCodeVerifier];
OIDAuthorizationRequest *request =
    [[OIDAuthorizationRequest alloc] initWithConfiguration:configuration
                    clientId:kClientID
                      scope:@"openid profile"
                 redirectURL:redirectURI
                responseType:OIDResponseTypeCode
                       state:[OIDAuthorizationRequest generateState]
                codeVerifier:codeVerifier
               codeChallenge:codeVerifier
         codeChallengeMethod:@"plain"
        additionalParameters:nil];

Android : ビルダーに追加することで、PKCE パラメーターをオーバーライドできますsetCodeVerifier(String, String, String)。これは、カスタム PKCE メソッドを送信するために使用できます (デフォルトでは、ライブラリはS256SHA-256 プラットフォームをサポートするクライアントで使用します)。

import net.openid.appauth.CodeVerifierUtil;

String codeVerifier = CodeVerifierUtil.generateRandomCodeVerifier();
AuthorizationRequest authRequest = new AuthorizationRequest.Builder(
    serviceConfig,
    CLIENT_ID,
    AuthorizationRequest.RESPONSE_TYPE_CODE,
    REDIRECT_URI)
    .setScope(SCOPE)
    .setCodeVerifier(codeVerifier, codeVerifier, "plain")
    .build();
于 2016-02-22T23:57:04.790 に答える