Skip to Content
Technical Articles
Author's profile photo Carlos Roggan

SAP BTP: Security Glossary

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.



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)

Relying Party: the client that requests an ID token

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.
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.
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

user attributes. Properties about user,
e.g. email
See here for registered OIDC claims:

Node.js Lib:

OIDC links
OpenID spec:
Authentication flow:
OIDC client impl guide:


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.

The involved systems are called “Entities”: Identity Provider and Service Provider (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.

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.

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.

The SP metadata contains the Assertion Consumer Service URL (ACS Endpoint).
SAML assertions are sent to this endpoint.

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.

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  ,


OAuth 2.0:
A framework for obtaining access tokens for protected resources


JSON Web Token
A piece of data
Designed to be compact

– Header
– Payload (JSON)
– Signature

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

JSON Web Signing

JSON Web Encryption

JSON Web Key
A JSON data structure that represents a cryptographic key.
Format, e.g. for provider’s public keys (RSA) spec:

JSON web key set.
Used to store public JSON web keys

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

Properties contained in the payload of JWT token
A statement that a subject makes about itself.

Claims list (standard)

The receiver for which the token was issued.
Typically the clientid of the credentials section in env
Expiration Time
Issued at
Unique identifier of the token
Not before


Claims list (common)

Algorithm to verify the signature of the token
Content Type
The key that was used to generate the signature of the token
Token Type

Claims list (more)

Authentication Context Class Reference
Authentication Methods References
Authorized party – the party to which the Token was issued.
The OAuth ClientID of this party.
Optional claim, same as aud.
Confirmation, used in case of mTLS

See here for registered public claims:

Cryptography / Certificates

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.

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
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.

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”.

Security Token
Short pwd, valid only one-time or for a short period of time.
Usually bound to a special device or special hardware e.g. RSA SecurID keycards.

Common standard for certificates.
Formats can be PEM, DER etc

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
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

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

Certificate Signing Request
Defined within PKCS #10
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.

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

Certification Authority

Hardware Security Module,
A hardware-based security device that generates, stores, and protects cryptographic keys

Import the certificate of the authorisation server into a Personal Security Environment (PSE) also known as a Certificate Collection.

Public key infrastructure. Helps to check if certificate and public key belong together. Requires another cert which is in the chain

Standard for content of certificate.
The most common format for public key certificates

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.

Or PKCS7: Public Key Cryptography Standard number 12
Foundation for S/MIME
Evolved to CMS standard
File extension: .p7b  .p7c

Or PKCS12: Public Key Cryptography Standard number 12
Binary format
Can be password-protected
used as container to store certificate, chain, key
used to export/import
File extension: .pfx  .p12

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 .
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

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).

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

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

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.
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

Message Digest version 5 (128 bit)

Secure Hash Algorithm
E.g. SHA1 (version1, 160 bit), SHA256 (larger values are possible with SHA)

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)
The cipher is symmetric (same key is used to encrypt and to decrypt)

Cipher block chaining

Hash-based Message Authentication Code

Elliptic Curve Diffie Hellman Ephemeral

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

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
BF  Blowfish
RC2  (128 bit)
RC4  (can be 40, 64, 128 bit)
RC5  RC5 cipher

Cipher Suite
List of supported algorithms, used for encryption.
Typically exchanged during TLS handshake

A plaintext message is encrypted to ciphertext message.

Rivest Shamir Adleman (three academics who first described this system)
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

Optimal Asymmetric Encryption Padding
Alternative for e.g. RSA PKCS#1 v1.5

Message Authentication Code
AKA “keyed hash”
Similar like hash value, but adds “authentication” on top of “integrity”.

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.

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
SAN = Subject Alternative Name

CN = Common Name
OU = Organizational Unit
L = Locality
= Organization
C = Country

Subject Field
contains CN.
Content of CN:
e.g. the primary hostname (domain name of the website)

Secure Sockets Layer

Transport Layer Security
Successor of SSL

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
Example in Node.js:

X-Forwarded-Client-Cert, header, used to pass client certificate, in case of mTLS

Discretionary Access Control List and ACEs access entries .

Certificate tools

Decode Certificate
Generate Certificate
Decode CSR:
Decode .p12
extract p12 file to pem, whole file, not filtering key etc
Decode, convert:
Decode id_token and other:
Base 64:
AND of course: Openssl
main entry:

Set of libraries that implement several standards
Set of utilities for command line.



Identity Authentication Service
Correct full name:SAP Cloud Identity Services – Identity Authentication
SAP Help:
SAP Cloud Identity Services – Identity Authentication
SAP Help landing page:
Identity service: JSON param docu
Video: Why IAS
IAS SAP Community
IAS SAP Community Parent
Discovery Center

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:
IPS part of the SAP Cloud Identity Services offering, which includes:
Identity Authentication, Identity Provisioning, Identity Directory and Authorization Management services.

Authorization / AMS

eXtensible Access Control Markup Language
Authorization model is based on xacml

Open Policy Agent
Open source policy decision engine which runs as a server next to the application (side car pattern)

Data Control Language
File extension: *.dcl

Authorization Decision Controller, the Policy Engine

Policy Information Point

Policy Administration Point, centralized

Policy Retrieval Point, centralized

Policy Decision Point, decentralized

Authorization Bundle Provider

Authorization Decision Controller
Is a OPA server and its deployment is done with CF multiple buildpack

Container Security Library


Internet Assigned Numbers Authority

Identity- and Access-Management

Customer Identity and Access Management

Federated Identity Management

SAP Cloud Identity

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.)

OASIS Security Services Technical Committee

Single Sign-On

Single Log-Out

Personally identifiable information

Number-only-used-once validation.

Service Broker

Open Service Broker API

Service Broker Framework

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Yogananda Muthaiah
      Yogananda Muthaiah

      Great blog Carlos Roggan  explaining all the complete security standards for Authentication.. Thank you soo much

      Most of them know JWT but not JOSE, JWE, JWA, and JWK .. Glad you touched upon those.. 🙂

      Author's profile photo Carlos Roggan
      Carlos Roggan
      Blog Post Author

      Thank you so much Yogananda Muthaiah for the feedback!
      Glad to hear that it has been useful even for an expert like you ! 😉
      And good to see you're still active in the community, nice to see you again 😉

      Author's profile photo Wallace Henry
      Wallace Henry

      Thanks Carlos Roggan

      Grateful for this - it will be a great reference for me as the various groups/experts push the acronyms and as we continue to evolve the security items over time.
      One end to end type of question - any value to add IPS (Identity Provisioning Service) to the "Other" section?   I think IPS is referenced earlier in the list.  I know IPS is moving users around, but that's somewhat tied to user authorization and somewhere security.  Especially as SAP typically talks about IAS and IPS in pairs.


      Author's profile photo Carlos Roggan
      Carlos Roggan
      Blog Post Author

      Hello Wallace Henry , thank you for the feedback.
      I've added a section wrt IPS above, you're right to point it out.
      And you're right about moving users around, that's the main purpose, however with lots of complex options (as usual)