Memahami endpoint OAuth

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Untuk melakukan tugasnya sebagai server otorisasi OAuth2, Apigee perlu mengekspos endpoint tempat klien dapat meminta token dan kode autentikasi. Topik ini memberikan pengantar singkat tentang endpoint tersebut, dan menunjukkan cara menyiapkannya di Apigee.

Apa yang dimaksud dengan endpoint OAuth2?

Endpoint OAuth2 adalah URL yang dipanggil klien untuk meminta token OAuth (atau kode autentikasi). Berikut adalah contoh permintaan untuk token akses:

$ curl -i -H "ContentType: x-www-form-urlencoded" \
-X POST "https://apitest.acme.com/oauth/client_credential/accesstoken" \
-d "grant_type=client_credentials" \
-H "Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ"

Anda memerlukan kebijakan OAuthV2 untuk memproses permintaan ini. Seperti yang dapat Anda simpulkan dari contoh permintaan di atas, kebijakan harus mendukung jenis pemberian "kredensial klien", dan mengeksekusi di jalur /oauth/client_credentials/accesstoken.

Ini adalah contoh kebijakan OAuthV2 yang dikonfigurasi untuk menerima jenis pemberian client_credentials. Untuk informasi tentang elemen konfigurasi opsional yang dapat Anda konfigurasi dengan kebijakan ini, lihat kebijakan OAuthV2.

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <SupportedGrantTypes>
      <GrantType>client_credentials</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

Berikut adalah contoh konfigurasi endpoint untuk membuat token akses. Tindakan ini akan menjalankan kebijakan GenerateAccessToken, yang harus dikonfigurasi untuk mendukung jenis pemberian client_credentials.

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

Jika klien memberikan kredensial yang benar, kebijakan akan membuat dan menampilkan token; jika tidak, error akan ditampilkan.

Topik terkait

Untuk informasi mendetail tentang semua jenis pemberian dan contoh kode yang didukung, lihat Mendapatkan token OAuth 2.0