Memahami endpoint OAuth

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Untuk menjalankan tugasnya sebagai server otorisasi OAuth2, Apigee perlu mengekspos endpoint tempat klien dapat meminta token dan kode autentikasi. Topik ini menawarkan pengantar singkat tentang endpoint ini, 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 dijalankan 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 konfigurasikan 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 mengeksekusi 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, kebijakan akan menampilkan error.

Topik terkait

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