Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
de:dfnpki:tcs:restapi [2024/05/16 18:01] – [Sectigo REST-API] Reimer Karlsen-Masurde:dfnpki:tcs:restapi [2024/05/31 18:05] (aktuell) Juergen Brauckmann
Zeile 1: Zeile 1:
- 
 =====Sectigo REST-API===== =====Sectigo REST-API=====
  
  
-Die Systeme von Sectigo können per REST-API angesprochen werden. Eine Dokumentation hierzu finden Sie unter: https://sectigo.com/knowledge-base/detail/Sectigo-Certificate-Manager-SCM-REST-API/kA01N000000XDkE+Die Systeme von Sectigo können per REST-API angesprochen werden. Es gibt zur Zeit (2024-05) **zwei** Versionen der API. 
 + 
 +1. Eine ältere API mit Endpunkten unter https://cert-manager.com/ 
 +   * Authentifizierung per Username/Passwort eines RAO oder DRAO-Accounts im HTTP-Header 
 +   * Dokumentation unter https://sectigo.com/knowledge-base/detail/Sectigo-Certificate-Manager-SCM-REST-API/kA01N000000XDkE 
 + 
 +2. Eine neuere API mit Endpunkten unter https://admin.enterprise.sectigo.com/ 
 +   * Authentifizierung per OAUTH2 Client Credentials Grants 
 +   * Anknüpfungspunkt in SCM sind spezielle RAO- und DRAO-Accounts vom Typ "API" 
 +   * OAuth2 Client-ID und Client-Secret können in SCM erzeugt werden über ☰->Settings->Admins, Account vom Typ "API" auswählen und dann Button "API-Keys" 
 +   * JSON-Dokumentation nach dem OpenAPI-Standard unter https://admin.enterprise.sectigo.com/api/v3/api-docs 
 +   
  
 Das REST-API kann nur dann zum Enrollment verwendet werden, wenn unter ☰->Organizations-><Auswahl> per Button Edit im Tab "Certificate Settings" in den Abschnitten "SSL Certificates" bzw. "Client Certificates" die Checkbox "Enable Web / REST API" angekreuzt ist. Das REST-API kann nur dann zum Enrollment verwendet werden, wenn unter ☰->Organizations-><Auswahl> per Button Edit im Tab "Certificate Settings" in den Abschnitten "SSL Certificates" bzw. "Client Certificates" die Checkbox "Enable Web / REST API" angekreuzt ist.
 +
 +
 +=== Beispiele für REST API Typ 1 ===
  
 Es ist ein Login/Passwort eines im Cert-Manager angelegten Accounts zu übergeben. Sofern dieser Account ein "Standard"-Account ist, muss dessen  Es ist ein Login/Passwort eines im Cert-Manager angelegten Accounts zu übergeben. Sofern dieser Account ein "Standard"-Account ist, muss dessen 
Zeile 58: Zeile 72:
           ...,\           ...,\
           "csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIICYjCCAU...N818=\n-----END CERTIFICATE REQUEST-----"}</code>           "csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIICYjCCAU...N818=\n-----END CERTIFICATE REQUEST-----"}</code>
 +
 +
 +=== Beispiele für REST API Typ 2 ===
 +
 +Für die modernere Variante des APIs sind Aufrufe mittels ''curl'' wegen der OAUTH2-Authentifizierung etwas unhandlich. Ein kleines Beispiel in Python, mit dem die angelegten Personen in SCM aufgelistet werden:
 +
 +<code>
 +import urllib.request
 +from oauthlib.oauth2 import BackendApplicationClient
 +from requests_oauthlib import OAuth2Session
 +
 +# clientid und clientsecret über den Button "API-Keys" zu einem Admin-User im SCM erzeugt
 +clientid=<XYZ>
 +clientsecret=<XYZ>
 +
 +token_url='https://auth.sso.sectigo.com/auth/realms/apiclients/protocol/openid-connect/token'
 +client = BackendApplicationClient(client_id=clientid)
 +oauth = OAuth2Session(client=client)
 +
 +token = oauth.fetch_token(token_url='https://auth.sso.sectigo.com/auth/realms/apiclients/protocol/openid-connect/token',
 +                client_id=clientid, client_secret=clientsecret)
 +
 +headers = {'Authorization': 'Bearer %s' % token.get('access_token')}
 +
 +resp = requests.get('https://admin.enterprise.sectigo.com/api/person/v2/', headers=headers)
 +print(resp.headers)
 +print(resp.json()) 
 +</code> 
  
  • Zuletzt geändert: vor 15 Stunden