Dear Community,
like I felt the need of collecting terms and abbreviations and their meanings in the huge and complex area of security, I feel like I should share the list with you, as you might have the same need.
It is like:
-> Read ABC anywhere
-> forgot the meaning (again)
-> look it up (again)
-> luckily bookmarked this helpful blog post in the SAP Community…
Below list is obviously far from being complete or professional or official.
Nor are the links officially approved, so use them at your own risk.
At the end, it is just my personal list which I’m sharing with you.
The terms are loosely grouped – as of my feeling, so better use CTRL+F for finding your search term.
Please don’t hesitate to contact me for improvements, suggestions and additions.
And a disclaimer: I’m not expert, please forgive if I’m not precise.
Quicklinks:
JWT
Cryptography
IAS/AMS
OIDC
OIDC
OpenID Connect:
A protocol.
Allows web applications (= relying parties) to authenticate users with an external server (= OpenID Connect Provider).
This server typically gets user information from an identity provider (IdP), which is a database of user credentials and attribute information.
OpenID Connect forwards to concrete IDP
OpenID Connect, 2014, is not the first standard for IdP, but the best (usability and simplicity), learned the lessons from past (SAML + OpenID)
RP
Relying Party: the client that requests an ID token
OP
OpenID Provider, OpenID Connect Provider:
Provides endpoints: authorization, token, UserInfo
OIDC tokens
Access token:
A string containing a unique secret token.
Access token has specific permissions and is used to get data from an API.
Expires soon, typically within 24 hours.
OAuth.
Access token only for oauth, not relevant for openid authentication request.
Required for UserInfo endpoint
Refresh token:
A string containing a unique secret token.
Refresh token enables its bearer to request and obtain new Access tokens.
These newly obtained access tokens have a subset of the permissions that the Refresh token has. The Refresh token never expires.
ID token:
Resembles the concept of an identity card, in a standard JWT format, signed by the OpenID Provider
requested via oauth protocol.
Response:
Base64-encoded JSON document.
The json document contains access token refresh token and ID token.
ID tokens are created and signed by OpenID Connect Providers (OP) and consumed, verified by web applications authenticating users.
The ID token contains information about how and when the user authenticated along with various attributes.
ID tokens are normally intended for sign-on, access tokens for calling protected APIs
Claims
user attributes. Properties about user,
e.g. email
https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
See here for registered OIDC claims:
https://openid.net/specs/openid-connect-core-1_0.html#IDToken
OIDC Libs
Node.js Lib: https://www.npmjs.com/package/openid-client
docu: https://github.com/panva/node-openid-client/blob/main/docs/README.md
OIDC links
OpenID spec: https://openid.net/connect/
Authentication flow:
https://infosec.mozilla.org/guidelines/iam/openid_connect.html#detailed-oidc-authentication-flow
https://developer.okta.com/blog/2019/10/21/illustrated-guide-to-oauth-and-oidc
https://developers.onelogin.com/openid-connect/samples
https://codeburst.io/how-to-implement-openid-authentication-with-openid-client-and-passport-in-node-js-43d020121e87
https://codeburst.io/openid-connect-client-by-example-76caf6dae55e
https://medium.com/@goranlisak/how-to-implement-openid-connect-authentication-flow-inside-of-an-iframe-10cf6b155c49
https://connect2id.com/learn/openid-connect
OIDC<->SAML: https://github.wdf.sap.corp/d035752/oidcnodejs/blob/master/theory.md
OIDC client impl guide: https://openid.net/specs/openid-connect-basic-1_0.html
SAML
SAML
Security Assertion Markup Language
Is a protocol (Authentication) used for SSO
Typically used for scenarios where users in big companies have to use multiple applications.
Instead of entering users/passwords for each application, they login only once, and the login is reused for each application.
Known as Single Sign-On (SSO) login standard.
We use SAML as well for Principal Propagation.
In this context, we talk as well about Identity Federation.
SAML is used in browser-based scenarios.
Entitiy
The involved systems are called “Entities”: Identity Provider and Service Provider (SP).
SP
Service Provider is also called Relying Party (relies on proper authentication by IdP)
When login is required, the user has to do the authentication request at IdP.
IDP
The user authentication is handled by a central Identity Provider
The IdP issues a little document which contains the user-info (identity) and which is passed to each application.
Identity Provider is also called Asserting Party.
The IdP creates a little xml document, which is the authentication response and contains the user’s identity.
Assertion
This little xml document is also called SAML Bearer Assertion (because it is carried around, from app to app) or just token.
The token is stored in the user’s browser session and is sent to each application the user wants to access.
It is signed with X509 certificate.
The receiving Service Provider is able to verify the signature, because a trust relationship has been established between IdP and SP.
To establish the trust relationship, SAML supports metadata documents on both sides (IdP and SP)
Metadata contain e.g. the info about endpoints used for redirects etc.
ACS
The SP metadata contains the Assertion Consumer Service URL (ACS Endpoint).
SAML assertions are sent to this endpoint.
Advantage
Security is handled centrally, applications don’t need to store uses and passwords, users don’t need to enter pwd for each app.
SAML is open standard and provides flexibility.
Disadvantage
The little xml document is quite big and causes network overhead.
Main focus is authentication.
Authorization capabilities are rather poor.
Difference to OAuth
SAML2 can be used for both authentication and (limited) authorization.
OAuth2 is an authorization framework. Authentication is not in scope.
However, OAuth2 can be enhanced (with openID) and used for SSO as well.
OAuth2 uses JWT tokens which are smaller than the xml-based SAML assertions.
Different terms for similar concepts
Service Provider (SAML) corresponds to Resource Server (OAuth).
Identity Provider (SAML) corresponds to “Authorization Server” (OAuth).
Client: browser (SAML) corresponds to (mostly) web app clients in OAuth.
SAML links
https://developers.onelogin.com/saml
https://stackoverflow.com/questions/26901368/saml-adfs-node-js-implementation-guide/36897549#36897549
https://pages.github.tools.sap/kernelservices/tutorials/identity-service-saml-nodejs/ , http://www.passportjs.org/packages/passport-saml/
https://help.sap.com/viewer/6d6d63354d1242d185ab4830fc04feb1/Cloud/en-US/fe3102ad92d94baa955ffa06b86d2cfa.html
OAuth
OAuth 2.0:
A framework for obtaining access tokens for protected resources
PKCE
Proof Key for Code Exchange:
An extension to the Authorization Code Flow (OAuth) to be able to securely perform the OAuth exchange from public clients.
https://oauth.net/2/pkce/
https://www.oauth.com/oauth2-servers/pkce/
https://auth0.com/docs/flows/authorization-code-flow-with-proof-key-for-code-exchange-pkce
JWT
JWT
JSON Web Token
A piece of data
Designed to be compact
Structure
– Header
– Payload (JSON)
– Signature
JOSE
Javasceript Object Signing and Encryption
Framework to provide a method to securely transfer claims between parties.
The JOSE framework provides a collection of specifications to serve this purpose
JWS
JSON Web Signing
http://tools.ietf.org/html/draft-ietf-jose-json-web-signature
JWE
JSON Web Encryption
http://tools.ietf.org/html/draft-ietf-jose-json-web-encryption
JWK
JSON Web Key
A JSON data structure that represents a cryptographic key.
Format, e.g. for provider’s public keys (RSA) spec:
https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41
JWKS
JSON web key set.
Used to store public JSON web keys
JKU
JWK Set URL
A URI that points to location where public keys are stored.
JSON array of JSON objects with keys.
Jku is a claim contained in a JWT token
Claims
Properties contained in the payload of JWT token
A statement that a subject makes about itself.
Claims list (standard)
aud
Audience
The receiver for which the token was issued.
Typically the clientid of the credentials section in env
exp
Expiration Time
iat
Issued at
iss
Issuer
jti
JWT ID
Unique identifier of the token
nbf
Not before
sub
Subject
Claims list (common)
alg
Algorithm to verify the signature of the token
cty
Content Type
kid
The key that was used to generate the signature of the token
crit
Critical
typ
Token Type
Claims list (more)
acr
Authentication Context Class Reference
amr
Authentication Methods References
azp
Authorized party – the party to which the Token was issued.
The OAuth ClientID of this party.
Optional claim, same as aud.
cnf
Confirmation, used in case of mTLS
See here for registered public claims:
https://www.iana.org/assignments/jwt/jwt.xhtml
Cryptography / Certificates
Encoding
Transform some format. Is reversible without additional info, no secret/pwd required.
Make data readable in special but common way.
Sender has data in strange format, then encodes it with base64, which can be decoded by anybody.
This ensures that the strange format doesn’t break while it is transferred over network.
The encoding, like base64 (or ASCII, or URL encode), doesn’t contain strange characters which might get lost or broken.
As such, useful for binary data and similar, for systems that send data over net, better convert binary to text.
Encryption
Make secret data unreadable, for security reason. Pwd required to decrypt (key/secret).
Sender encrypts data with key -> recipient decrypts with key
Can be symmetric (secret key, e.g. AES) or asymmetric (public/private key, e.g. RSA).
You’d like a really intuitive example? See my blog post here.
Symmetric Encryption
AKA secret key encryption
Sender encrypts data with a key.
Sender gives the key to the recipient
Sender sends encrypted data to recipient
Recipient decrypts the data with the (symmetric) key.
Symmetric encryption is faster than asymmetric.
Symmetric encryption can handle bigger sizes of data.
Supports block mode and stream mode.
Asymmetric Encryption
Recipient creates key pair (asymmetric)
Recipient sends his public key to sender.
Sender encrypts data with this public key.
Sender sends encrypted data to recipient.
Recipient decrypts the data with the corresponding private key (key must match).
Key Pair
Public key and private key must correspond together.
A message is encrypted with public key and decrypted with corresponding private key.
A message is signed with private key and verified with corresponding public key.
Openssl generates a private key which contains the public key as well, so the pubkey can be extracted (modulus and exponent) from generated private key with OpenSSL command.
The generated file is base64 encoded.
My memory hook for encryption:
I send messages from public post office, so use public key for send/encrypt.
I receive messages at home, so use private key to read/decrypt.
My memory hook for signing:
Reverse mode of encrypting
Secret Key
Typically, the key that is used in symmetric encryption is called “secret key”.
Key Size
The size of the secret
The secret is used to encrypt the data
Longer key provide more security, but less performant
Security Token
Short pwd, valid only one-time or for a short period of time.
Usually bound to a special device e.g.phone or special hardware e.g. RSA SecurID keycards.
X.509
Common standard for certificates.
Contains several elements, e.g. Subject and Issuer, both identified by DN
DN is unique, as such, the issuer of a certificate can be identified and proven to bo OK
Formats can be PEM, DER etc
PEM
Originally “Privacy Enhanced Mail”.
Most common format for X. 509 certificates ( etc.)
A text file using Base64 ASCII encoding for the (binary) DER content
Defines plain-text headers and footers
(e.g. —–BEGIN CERTIFICATE—– and —–END CERTIFICATE—–)
PEM is a container format for digital certificates (chain) and keys.
A file extension of a file that contains a bunch of certificate files.
File extensions can be: .pem .cer .crt .cert .key
DER
Distinguished Encoding Rules
A binary encoding for X.509 certificates and private keys.
No —BEGIN statements
Can store only one certificate, no chain, no key
Common in java
File extensions .der .cer
Content looks like this:
310b 3009 0603 5504 0613 0255 5331 0e30
BER
Basic Encoding Rules
CSR
Certificate Signing Request
Defined within PKCS #10 https://tools.ietf.org/html/rfc2986
A block of encoded text that is given to a Certificate Authority when applying for an SSL Certificate.
Contains the public key and textual information about the requester.
The certificate created with a CSR will only work with the private key that was generated with it.
CSR can be generated with OpenSSL or tools in the internet.
CRL
Certificate Revocation List
If certificate is not safe, e.g. private key was revealed, then it can be revoked and added to this list which is publicly available
CA
Certification Authority
HSM
Hardware Security Module,
A hardware-based security device that generates, stores, and protects cryptographic keys
PSE
Import the certificate of the authorisation server into a Personal Security Environment (PSE) also known as a Certificate Collection.
X.509
Standard for content of certificate.
The most common format for public key certificates
https://en.wikipedia.org/wiki/X.509
PKI
Public key infrastructure. Helps to check if certificate and public key belong together. Requires another cert which is in the chain.
The certificate chain is hierarchical structure where the parent signs many child-certificates.
PKIX
Public key infrastructure X509.
Web of Trust
Other than the hierarchical PKI, this is a flat network of trust.
Each partner confirms the trust of the other partner’s public key.
PKCS#7
Or PKCS7: Public Key Cryptography Standard number 7
Spec: https://tools.ietf.org/html/rfc5652
Foundation for S/MIME
Evolved to CMS standard
File extension: .p7b .p7c
PKCS#12
Or PKCS12: Public Key Cryptography Standard number 12
Spec: https://tools.ietf.org/html/rfc7292
Binary format
Can be password-protected
used as container to store certificate, chain, key
used to export/import
File extension: .pfx .p12
JKS
Java Key Store
Used to store certificates or key pairs in binary format.
Keystore is a binary file with file extension .jks
JKS is used in Java environments, alternatively p12 is used and more flexible
Java Key Stores are created with the keytool command line tool, installed together with Java JDK and can be copied and used standalone
Hash Function
Used to create a hash value out of a message (or any other data).
The resulting hash value has fix length, whereas the origin data is of arbitrary length.
Used to ensure “integrity” of data.
Note: does not ensure “authentication” of hashed data .
E.g.
We have a text file.
We use hash function to create a hash value, based on the text file.
We send the file to a friend.
We also send the hash to the friend.
The friend creates his own hash value, based on the text file.
The friend compares both hashes: they must match.
If not, then the text file has been modified by a hacker
CHF
Cryptographic Hash Function
Same as hash function, but more secure.
It should not be possible to take the hash value and calculate the original value (preimage).
It should not happen that hashing 2 different data result in the same hash value (collision).
Hash
Or: hash value
Or: hash code
Or: (message) digest
Or: Fingerprint
Or: checksum
Typically used as synonyms in the world of cryptography.
Result of applying a hash function to a document
Hash Collision
Little change in the original input text (or whatever) results in a completely different hash value (digest)
Salt
Some extra bits that are added to a hash value, to make it even more secure.
Hash Algorithm
A math formula, used by hash functions
E.g. MD5, SHA1 etc
ESS
Enhanced Security Services for S/MIME
Specified in rfrc 2634 and 5035
Describes four optional security service extensions for S/MIME:
– signed receipts
– security labels
– secure mailing lists
– signing certificates
Example: Triple Wrapping
A message is signed, then encrypted, then signed again.
Thus, have signed attributes bound to the encrypted body.
DSIG, Digital Signature
Similar like Hash Value, but is created with private key and verified with public key.
As such, ensures “integrity” and “authentication”.
A signature is a piece of unreadable characters sent in addition to the message itself.
Example:
I send you a message
you sign it (privkey) and send to me.
I can now verify if you signed my original message, using your public key
eSignature
Electronic Signature
A signature is used to proof the identity of the signer. And also his intention.
Usually done with handwriting, but in modern times also done electronically.
Electronic Signature is the broad term, a specific type of eSignature is the Digital Signature.
SES stands for Simple Electronic Signature.
AES or AdEs stands for Advanced Electronic Signature and is a digital signature
QES stands for Qualified Electronic Signature and is a digital signature
AdES / AES
Advanced electronic signature
An electronic signature that has met the requirements of European Regulation (eIDAS-regulation) on electronic identification and trust services for electronic transactions.
Requirements, e.g.
The signer can be identified and linked to the signature
It ensures that the signed data is not modified
Can be invalidated, if signed data has changed
CAdES
CMS Advanced Electronic Signatures
A set of extensions to CMS standard.
More concrete: to the signing part of the CMS.
These extensions make the CMS suitable for AdES (Advanced Electronic Signatures)
While CMS is generic specification, the AdES extension contains precise specifications for the signature.
This makes it compliant with European Regulations for electronic signatures (eIDAS)
As a consequence, a CAsES-Signature has the same legal value like a handwritten signature (in Europe)
One of the CAdES-profiles (the simplest one) is CAdES-B: Basic Electronic Signature (BES)
It fulfils the minimum requirements for trusting that an electronic signature properly identifies the signer.
wiki
ECC
Elliptic Curve Cryptography
Asymmetric algorithm
MD5
Message Digest version 5 (128 bit)
Creates 128-bit hash (digest) from any length input text.
The hash is represented as 32-digit hexadecimal digits.
SHA
Secure Hash Algorithm
E.g. SHA1 (version1, 160 bit), SHA256 (larger values are possible with SHA)
AES
Advanced Encryption Standard e.g. 128 bit (or 192 and 256)
A block cipher that encrypts/decrypts blocks of bits.
(unlike stream cipher, which encrypts bits one at a time)
Most commonly used symmetric encryption algorithm.
CBC
Cipher block chaining
HMAC
Hash-based Message Authentication Code
Used to verify the message’s impartiality and validity
ECDHE
Elliptic Curve Diffie Hellman Ephemeral
GCM
Galois Counter Mode
Used when the data is larger than the used algorithm handles.
So multiple blocks are created (e.g. by AES) and they are managed by GCM
Cipher
The algorithm used for encryption/decryption, like a math formula
Typically, a key is used. Larger keys result in higher security, but lower performance.
In such cases. a key must be selected before using a cipher to encrypt a message
Block ciphers: encrypt block of data of fixed size
Stream ciphers: encrypt continuous streams of data
Examples for ciphers:
AES can be 128, 192, 256 bit, faster than Triple-DES
BF Blowfish, since 1993, symmetric, block cipher,
block size 64 bits, key size variable, usually 128 bits
CAST based on CAST design procedure
DES Data Encryption Standard (1970s), (64bit) symmetric, replaced by Triple-DES, then AES
TDES == Triple DES == 3DES == DESede: use DES algorithm 3 times
DESX DES-X, Extended DES, since 1984, enhancement to DES, increasing the key size to 184 bits
GOST Russian government standard symmetric key block cipher (64 bit), since 1989
IDEA International Data Encryption Algorithm
MD5 Message Digest Method 5
RC2 128 bit, designed by Ron Rives, RC = Rons Code or Rivest Cipher
RC4 can be 40, 64, 128 bit
RC5 RC5 cipher
RSA
Cipher Suite
List of supported algorithms, used for encryption.
Typically exchanged during TLS handshake
Ciphertext
A plaintext message is encrypted to ciphertext message.
Stream Cipher
Stream mode: encryption is done bit per bit
Considered weak form of encryption
Examples:
A5/1: since 1987, based on A5 security protocol, weaknesses detected
RC4: since 1987, Rivest Cipher 4, aka ARC4 or ARCFOUR (Alleged RC4), vulnerabilities found
Block Cipher
Encryption is done block by block
E.g. DES uses 64-bit blocks, AES uses 128-bit-blocks (among others)
Examples:
AES Advanced Encryption Standard
Blowfish
DES Data Encryption Standard
Twofish related to earlier Blowfish, block size 128 bits
Camellia block size 128 bits, named by Japanese flower
CAST
GOST
IDEA International Data Encryption Algorithm
RC2
Block
A block is a group of bits with fix length.
Operation Mode
Some algorithms (Block Ciphers) do their encryption work on blocks.
Usually, the data is larger than the blocks.
As such, the cipher has to be applied repeatedly.
A “block cipher mode of operation” describes how this is done.
Specifications in FIPS, NIST
Examples for modes of operation:
ECB Electronic Codebook
CBC Cipher block Chaining
CTR Counter
CFB Cipher Feedback
OFB Output Feedback
Padding
Before encrypting e.g. a message, some arbitrary data is added to beginning or end of the message.
This is done to avoid that a hacker could guess typical message-ending phrases, which would facilitate the hacking.
There are multiple practices for padding.
In symmetric encryption, the encryption can be done in blocks. So padding is used to fill up the last block.
If not done in blocks, but in streaming mode, then padding is not required.
In asymmetric encryption, a padding scheme is used to prepare the message for encryption.
E.g. OAEP, PSS
PCKS5 Padding and PCKS7 Padding is done in whole bytes.
RSA
Rivest Shamir Adleman (three academics who first described this system in 1977)
Commonly used public-key cryptosystem.
RSA algorithm used to generate key-pair.
Key sizes are larger than e.g. AES. RSA supports 1024, 2048, 4056
RSA-OAEP
Optimal Asymmetric Encryption Padding
Alternative for e.g. RSA PKCS#1 v1.5
DSA
Digital Signature Algorithm, published by NIST in 1991
Used for digital signature and verification
ECDSA
Elliptic Curve Digital Signature Algorithm
Used for digital signature and verification
MAC
Message Authentication Code
AKA “keyed hash”
Basically, a hash function with added authentication via secret key
The (MA-)Code itself stands for the authentication code, or secret key, or tag. MAC is comparable to “Hash Function” and “Digital signature”.
CHF ensures Integrity
MAC ensures Integrity and Authentication, uses symmetric key
DSIG ensures Integrity and Authentication and non-repudiation, uses asymmetric keypair
Non-repudiation: ensuring that the origin cannot be modified
Examples for MAC: HMAC, UMAC, GMAC, NMAC, CMAC, SHA1-HMAC, MD5-HMAC, CBC-MAC
Examples for CHF: SHA1 (compromised), SHA256, MD5 (compromised), SHA2, SHA3, BLAKE2
Cryptographic Primitive
This is like a very basic functionality, which is used to build another functionality on top of it
E.g. a generic low-level algorithm, which is to build higher-level cryptographic algorithms.
Examples:
Hash function, symmetric key encryption, public-key encryption, digital signature, random generation
Certificate
A digital certificate is used to prove trustworthiness of e.g. a server and a client.
A certificate is signed by a trustworthy parent certificate, which itself is signed by root CA.
In order to be signed, a CSR is generated and sent to CA.
Certificate contains public key (modulus and exponent) and fingerprint, bags, attributes, header data.
With other words:
A certificate is a public key that is signed, therefore its identity is proven and trustworthy.
Certificate Types:
DVC: Domain Validated Certificate
EVC: Extended validation Certificate
Both are commercially issued certificates, the difference is in the validation:
EVC is more expensive, more secure, required for sensitive websites, banking
Certificate Encoding:
DER: binary files
PEM: ASCII files, base64 encoded
PMS
Pre-master secret.
Some random bits that are encrypted with pubkey and sent to partner.
Based on PMS, a master secret and “session key” can be generated.
This one is used for symmetric encryption, as both partners have generated the same.
Session key can be based e.g. on AES128
Octet String
Octet stands for 8 bits forming a byte.
Putting these bytes into a sequence will form an Octet String.
Certificate Content
DN = Distinguished name, comprises of CN+OU+L etc
SAN = Subject Alternative Name
CN = Common Name, e.g. domain name of the website
OU = Organizational Unit
L = Locality
O = Organization
C = Country
Subject
Field in certificate which is uniquely identified by its DN
Issuer
Field in certificate which is uniquely identified by its DN
It is the parent certificate which signed the actual certificate
SSL
Secure Sockets Layer
TLS
Transport Layer Security
Successor of SSL
mTLS
mutual Transport Layer Security, mutual TLS
Process whereby, in addition to the normal TLS server authentication with a certificate, a client presents its X.509 certificate and proves possession of the corresponding private key to a server
Both server and client present their cert during TLS handshake
OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens
on top of normal oauth flow, enhanced security, utilizing client-certificate-based mTLS
Spec: https://tools.ietf.org/html/rfc8705
https://en.wikipedia.org/wiki/Mutual_authentication
Example in Node.js:
https://cloud.google.com/dialogflow/es/docs/fulfillment-mtls?hl=de
XFCC
X-Forwarded-Client-Cert, header, used to pass client certificate, in case of mTLS
DACL
Discretionary Access Control List and ACEs access entries .
Control Characters
exmples:
CR, LF,
EOT End of Tarnsmission
ETX End of Text
When viewing binary document with notepad++, don’t miss these explanations.
Useful tools
Decode Certificate
https://www.sslchecker.com/certdecoder
Generate Certificate
https://certificatetools.com/
Decode CSR:
https://certlogik.com/decoder/
https://redkestrel.co.uk/products/decoder/
Decode .p12
https://www.sslshopper.com/ssl-converter.html
extract p12 file to pem, whole file, not filtering key etc
https://www.sslshopper.com/certificate-decoder.html
Decode, convert:
https://www.httpcs.com/en/ssl-converter
Decode id_token and other:
https://oauth.tools/
Base 64:
https://www.base64decode.org/
AND of course: Openssl
main entry: https://www.openssl.org/docs/manmaster/man1
OpenSSL
Set of libraries that implement several standards
Set of utilities for command line.
IAS
IAS
Identity Authentication Service
Correct full name:SAP Cloud Identity Services – Identity Authentication
SAP Help:
SAP Cloud Identity Services – Identity Authentication
SAP Help landing page:
https://help.sap.com/viewer/product/IDENTITY_AUTHENTICATION
Identity service: JSON param docu
Video: Why IAS
IAS SAP Community
https://community.sap.com/topics/cloud-identity-services/identity-authentication
IAS SAP Community Parent
https://community.sap.com/topics/cloud-identity-services
Discovery Center
https://discovery-center.cloud.sap/#/serviceCatalog/identity-authentication?region=all
IPS
Identity Provisioning Service
Full name: SAP Cloud Identity Services – Identity Provisioning
The IPS server is used to copy users from a source system to a target, which can be scheduled to run e.g. on nightly basis.
For instance: “Please, each night do provision the users of Success Factors system to my IAS which is connected to my BTP account”.
This basic functionality is enriched with a ton of configuration options, e.g. mapping of user attributes of source to match the target system.
Furthermore, the IPS is intelligent enough to provision only the deltas of changed users, even if source system doesn’t support deltas.
SAP Help landing page: https://help.sap.com/docs/IDENTITY_PROVISIONING
IPS part of the SAP Cloud Identity Services offering, which includes:
Identity Authentication, Identity Provisioning, Identity Directory and Authorization Management services.
Authorization / AMS
XACML
eXtensible Access Control Markup Language
Authorization model is based on xacml
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml
OPA
Open Policy Agent
https://www.openpolicyagent.org/
Open source policy decision engine which runs as a server next to the application (side car pattern)
DCL
Data Control Language
File extension: *.dcl
ADC
Authorization Decision Controller, the Policy Engine
PIP
Policy Information Point
PAP
Policy Administration Point, centralized
PRP
Policy Retrieval Point, centralized
PDP
Policy Decision Point, decentralized
ABP
Authorization Bundle Provider
ADC
Authorization Decision Controller
Is a OPA server and its deployment is done with CF multiple buildpack
CSL
Container Security Library
https://github.com/SAP/cloud-security-xsuaa-integration/
Other
IANA
Internet Assigned Numbers Authority
IAM
Identity- and Access-Management
CIAM
Customer Identity and Access Management
FIdM
Federated Identity Management
SCI
SAP Cloud Identity
SCIM
System for Cross-domain Identity Management
Standard for automating the exchange of user identity information between identity domains, or IT systems
A RESTful API for all necessary user management operations, managing resources (users, groups and custom schemas)
SCIM is used as communication protocol for User Role Assignment by IPS
SCIM Aims to simplify user provisioning and management in the cloud by defining two standards
A canonical user schema
A standardized schema and API for querying and managing user identities (attributes, etc.)
https://api.sap.com/api/IdDS_SCIM/overview
Spec: https://www.rfc-editor.org/rfc/rfc7644
SSTC
OASIS Security Services Technical Committee
SSO
Single Sign-On
SLO
Single Log-Out
PII
Personally identifiable information
Nonce
Number-only-used-once validation.
Service Broker
OSB
Open Service Broker API
https://github.com/openservicebrokerapi/servicebroker/
SBF
Service Broker Framework
Other
NIST
National Institute of Standards and Technology
ENISA
European Union Agency for Network and Information Security: https://www.enisa.europa.eu
ETSI
European Telecommunications Standards Institute
Standardization organization in the field of information and communications