<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Authentication and authorization on SOARCA</title><link>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/</link><description>Recent content in Authentication and authorization on SOARCA</description><generator>Hugo</generator><language>en</language><atom:link href="https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/index.xml" rel="self" type="application/rss+xml"/><item><title>Microsoft Entra ID</title><link>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/entra/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/entra/</guid><description>&lt;p>SOARCA accepts access tokens that Entra ID issues for a dedicated &lt;strong>SOARCA API&lt;/strong> app registration. Permissions come from app roles on that registration, so you decide in Entra ID who may read, write or execute playbooks.&lt;/p>
&lt;p>You need an account that can create app registrations and grant admin consent, for example &lt;em>Application Administrator&lt;/em>. Note your &lt;strong>tenant ID&lt;/strong> from the Entra admin center overview page.&lt;/p>
&lt;h2 id="entra-components-users-and-applications">Entra components: users and applications&lt;/h2>
&lt;pre tabindex="0">&lt;code class="language-plantuml" data-lang="plantuml">@startuml
skinparam componentStyle rectangle

component &amp;#34;**SOARCA API** (app registration)\n\nApplication ID URI: api://soarca\nScope: access_as_user\nApp roles: Playbook.Read, Playbook.Write,\nPlaybook.Execute, SOARCA.Admin&amp;#34; as api

component &amp;#34;**A client that signs users in**\n(authorization code flow)&amp;#34; as client
component &amp;#34;**An integration or managed identity**\n(client credentials flow)&amp;#34; as integration

client -&amp;gt; api : delegated scope\n+ the user&amp;#39;s assigned app roles
api &amp;lt;-- integration : application permission\n(app role assigned to the application)
@enduml
&lt;/code>&lt;/pre>&lt;p>One registration represents SOARCA. Everything that calls SOARCA gets its own registration, or is a managed identity. Users and groups receive app roles through assignment; applications receive them as application permissions. Either way the roles end up in the token&amp;rsquo;s &lt;code>roles&lt;/code> claim, which SOARCA maps to permissions:&lt;/p></description></item><item><title>authentik and other OIDC providers</title><link>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/authentik/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/authentik/</guid><description>&lt;p>SOARCA accepts access tokens from one OpenID Connect provider, found through its discovery document. This page uses &lt;a href="https://goauthentik.io/">authentik&lt;/a>, which SOARCA is tested with. &lt;a href="https://cossas.github.io/SOARCA/SOARCA/docs/installation-configuration/authentication/authentik/#other-oidc-providers">Other providers&lt;/a> work if their tokens meet the same requirements.&lt;/p>
&lt;p>Permissions come from the groups a user or service account belongs to:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Group&lt;/th>
 &lt;th>SOARCA permissions&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>soarca_read&lt;/code>&lt;/td>
 &lt;td>&lt;code>playbook:read&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>soarca_write&lt;/code>&lt;/td>
 &lt;td>&lt;code>playbook:read&lt;/code>, &lt;code>playbook:write&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>soarca_execute&lt;/code>&lt;/td>
 &lt;td>&lt;code>playbook:read&lt;/code>, &lt;code>playbook:execute&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>soarca_admin&lt;/code> (or the value of &lt;code>AUTH_GROUP&lt;/code>)&lt;/td>
 &lt;td>all permissions&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>Group names are case-sensitive. Existing setups where every user is in &lt;code>soarca_admin&lt;/code> keep working unchanged.&lt;/p></description></item><item><title>API keys</title><link>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/api-keys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cossas.github.io/SOARCA/docs/installation-configuration/authentication/api-keys/</guid><description>&lt;p>Some systems can only send a fixed header, for example a webhook source that triggers a playbook. For those, SOARCA accepts static API keys. Prefer &lt;a href="../entra/">Entra ID&lt;/a> or &lt;a href="../authentik/">authentik&lt;/a> wherever the caller can request a token: tokens expire within hours, while a leaked key stays valid until it&amp;rsquo;s removed or expires.&lt;/p>
&lt;p>SOARCA never stores the keys themselves, only their SHA-256 hash. Every key starts with &lt;code>soarca_&lt;/code>, which lets SOARCA recognise it and lets secret scanners find leaked ones.&lt;/p></description></item></channel></rss>