İ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.
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.
- 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:
Ç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.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
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ı,{"access_token":"CJ7yDymDAfSRz03W7zdX","refresh_token":"fGAv2qzuLnM030Brs8KFaIuY1Kd2P87sLFXI85lH","scope":"","token_type":"bearer","expires_in":1799}*BAD_REQUEST (400)HTTP yanıt kodunu döndürür. - 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:
Erişim simgesi geçersizse ya da süresi sona erdiyse, çağrı HTTP yanıt kodu 302 değerini döndürür.curl -k -v -H "Authorization: Bearer CJ7yDymDAfSRz03W7zdX" https://<tenantHost>/baw/dev/rest/bpm/wle/v1/user/current - Bir yenileme simgesini kullanarak erişim simgesini yenileyin.OAuth 2.0 /token uç noktasını kullanın.
Arama, yeni bir simge kümesi döndürür.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
Ç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{"access_token":"DkhN7gg7mk2gsBjGi8ay","refresh_token":"ToY13V2yfoYaeVbBjTwFLhzwX7GiKd7Y801VfjGC","scope":"","token_type":"bearer","expires_in":1799}BAD_REQUEST (400)yanıt kodunu döndürür. - İ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:
Çağrı her zaman başarılı bir HTTP yanıt kodu döndürür; örneğin, 200.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/revokeDikkat: 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.