İstemci uygulamaları için OAuth 2.0 tabanlı kimlik doğrulamayı kullanma

Open Authorization (OAuth) 2.0 , bir kaynak sahibinin korumalı kaynaklara erişim izni verebileceği birkaç yolu açıklar. IBM® Cloud Pak for Business Automation as a Service , bulut ortamına istemci uygulaması erişiminin doğrulanmasını sağlamak için yalnızca kaynak sahibi parola kimlik bilgilerini (ROPC) destekler.

Not: Bulut aboneliklerinde OAuth 2.0 tabanlı kimlik doğrulaması varsayılan olarak etkinleştirilmez. If you'd like to use it, submit a request through the IBM Destek Portalı.

ROPC grant tipi

OAuth 2.0 terimlerinde, Cloud Pak for Business Automation as a Service istemci uygulamaları gizli istemcilerdir. ROPC grant tipi için, bunlar bir istemci kimlik bilgileri kümesi (istemci kimliği ve istemci güvenlik dizgisi) ve kaynak sahibi kullanıcı adı ve parolası gerektirir. İstemci kimlik bilgilerini almak için bunları oluşturmak için Credentials API 'sini kullanın. Kullanıcı adı ve parola için, bulut portalda Hesap Yöneticisi olarak oturum açın, bir hizmet kimlik bilgileri kümesi oluşturun ve sonra bu kimlik bilgilerini istemci uygulamasının gerektirdiği izinleri atayın. İzinler, OAuth 2.0 simgeli tabanlı erişimi bulut ortamlarına denetlemek için kullanılır.

OAuth ve ROPC grant tipi hakkında daha fazla bilgi için bkz. OAuth 2.0 Yetkilendirme Çerçevesi. Credentials API hakkında bilgi için bkz. Example: Credentials REST API for OAuth 2.0 based authentication ve hizmet kimlik bilgileri edinmek için bkz. Creating service accounts(Hizmet hesaplarını oluşturma ve yönetme).

OAuth 2.0 istemci kimlik bilgilerini yönetme

OAuth 2.0 istemcileri, çağıran istemci bağlamını tanımlamak için istemci kimlik bilgilerini sağlamalıdır. Ne kadar kimlik belirlemeye ihtiyacınız olduğuna siz karar verirsiniz. Örneğin, tüm OAuth 2.0 istemcileri için bir küme kullanabilir ya da her istemci için ayrı bir kimlik bilgileri kümesi kullanılabilir.

İstemci uygulamınızda OAuth 2.0 kimlik doğrulamasını kullanmak için uygulamanızın aşağıdaki etkileşimleri içermesi gerekir.
Önemli: Aşağıdaki çağrılar, yanıtın bir parçası olarak PD-S-SESSION-ID ve PD-ID tanımlama bilgileri için bir Set-Cookie komutu döndürebilir. Sonraki çağrılarda bu tanımlama bilgilerini kullanmayın.
  1. Bir OAuth 2.0 erişim belirteci alın.
    İstemci (istemci kimliği ve istemci güvenlik dizgisi) ve hizmet kimlik bilgileri (kullanıcı adı ve parola) dahil olmak üzere bir erişim belirteci edinmek için OAuth 2.0 /token uç noktasını kullanın. Örnek:
    curl -k -v -X POST -H 'content-type: application/x-www-form-urlencoded' 
    -d grant_type=password -d client_id=<clientId> -d client_secret=<clientSecret>
    -d username=<serviceCredId> -d password=<svcCredSecret>
    https://www.bpm.ibmcloud.com/mga/sps/oauth/oauth20/token
    
    Çağrı, sonraki bulut işlemleri API çağrılarında kullanılacak erişim simgesini, erişim simgesini yenilemek için bir yenileme simgesini ve erişim belirteci için süre bitimi olarak döndürür. Erişim simgelerinin genellikle dakika ya da saat olarak geçerli olduğunu, yenileme belirteçlerinin günlerce geçerli olabileceğini unutmayın. Kapsama desteklenmiyor.
    {"access_token":"CJ7yDymDAfSRz03W7zdX","refresh_token":"fGAv2qzuLnM030Brs8KFaIuY1Kd2P87sLFXI85lH","scope":"","token_type":"bearer","expires_in":1799}*
    Arama başarılı olursa, HTTP yanıt kodu 201 döndürülür. İstemci ya da hizmet kimlik bilgileri geçersizse, çağrı, BAD_REQUEST (400)HTTP yanıt kodunu döndürür.
  2. Bulut işlemleri API ' larına erişmek için belirteç kullanın.
    Döndürülen erişim simgesini, bulut işlemleri API çağrısının Yetki üstbilgisindeki önceki adımdan ekleyin. Örnek:
    curl -k -v -H "Authorization: Bearer CJ7yDymDAfSRz03W7zdX" https://<tenantHost>/baw/dev/rest/bpm/wle/v1/user/current
    Erişim simgesi geçersizse ya da süresi sona erdiyse, çağrı HTTP yanıt kodu 302 değerini döndürür.
  3. Bir yenileme simgesini kullanarak erişim simgesini yenileyin.
    OAuth 2.0 /token uç noktasını kullanın.
    curl -k -v -X POST -H 'content-type: application/x-www-form-urlencoded' 
    -d grant_type=refresh_token -d refresh_token=fGU3UjAHG0XKTdnInU8ihqTLf48XJIzQtRUjNFVo
    -d client_id=<clientId> -d client_secret=<clientSecret>
    https://www.bpm.ibmcloud.com/mga/sps/oauth/oauth20/token
    
    Arama, yeni bir simge kümesi döndürür.
    {"access_token":"DkhN7gg7mk2gsBjGi8ay","refresh_token":"ToY13V2yfoYaeVbBjTwFLhzwX7GiKd7Y801VfjGC","scope":"","token_type":"bearer","expires_in":1799}
    Çağrı, yenileme simgesi geçersizse ya da önceden kullanılmışsa ya da istemci kimlik bilgilerinin silindiği için geçersiz olması durumunda HTTP BAD_REQUEST (400) yanıt kodunu döndürür.
  4. İstemci uygulaması işlenmesinin sonundaki yenileme ve erişim simgelerini iptal et

    İstemci uygulaması işlemleri tamamlanınca, OAuth 2.0 /revoke uç noktasını kullanarak her iki simgeyi iptal etmek iyi bir uygulamadır. Erişim belirtecini iptal etmeden önce yenileme simgesini geri alın.

    Örneğin, yenileme simgesini iptal etmek için aşağıdaki çağrıyı kullanın:
    curl -k -v -X POST -H 'content-type: application/x-www-form-urlencoded' 
    -d client_id=<clientId> -d client_secret=<clientSecret>
    -d token=ToY13V2yfoYaeVbBjTwFLhzwX7GiKd7Y801VfjGC
    https://www.bpm.ibmcloud.com/mga/sps/oauth/oauth20/revoke
    
    Çağrı her zaman başarılı bir HTTP yanıt kodu döndürür; örneğin, 200.
    Dikkat: Bir API ' ye erişildikten sonra erişim simgesi süre bitimine kadar geçerliliğini korumaktadır.

Sınırlamalar

Yüzlerce eşzamanlı geçerli yardımların (erişim ve yenileme belirteci çiftleri) sistem tarafından tanımlanmış bir günlük sınırı vardır. Bu yardımlar, istemci uygulaması ve kaynak sahibi kullanıcı adı tarafından izlenir. İzin sınırına hiçbir zaman ulaşılamaması beklenir. Ancak, izin sınırına ulaşıldığını belirten bir ileti görürseniz, istemci uygulamalarınızda yetki oluşturma tasarımını denetleyin ya da IBM Destek bölüşünde bağlantı kurun.