Memahami endpoint OAuth

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Untuk melakukan tugasnya sebagai server otorisasi OAuth2, Apigee harus mengekspos endpoint di mana klien dapat meminta token dan kode auth. Topik ini memberikan gambaran singkat pengantar endpoint ini, dan menunjukkan cara menyiapkannya di Apigee.

Apa itu 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 Anda bisa dari contoh permintaan di atas, kebijakan tersebut harus mendukung "kredensial klien" jenis hibah, dan dieksekusi pada jalur /oauth/client_credentials/accesstoken.

Ini adalah contoh kebijakan OAuthV2 yang dikonfigurasi untuk menerima client_credentials jenis pemberian. 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. Fungsi ini akan menjalankan Kebijakan GenerateAccessToken, yang harus dikonfigurasi untuk mendukung 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; sebaliknya, maka akan menghasilkan {i>error<i}.

Topik terkait

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