外部サービス連携(External Service Integration)機能の開発・修正を行う際に使用。HTTP Request Executor, MappingRule, OAuth/HMAC認証実装時に役立つ。
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill external-integration --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of External Integration?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-external-integration)More formats (shields.io, HTML) on the badges page.
---
name: external-integration
description: 外部サービス連携(External Service Integration)機能の開発・修正を行う際に使用。HTTP Request Executor, MappingRule, OAuth/HMAC認証実装時に役立つ。
---
# 外部サービス連携(External Service Integration)開発ガイド
## ドキュメント
- `documentation/docs/content_03_concepts/06-security-extensions/concept-02-external-service-integration.md` - 外部連携概念
## 機能概要
外部サービス連携は、HTTP経由で外部APIと連携する層。
- **HTTP Request Executor**: リトライロジック付きHTTPクライアント
- **MappingRule**: JSONPath + 変換関数によるデータマッピング
- **認証**: OAuth 2.0, HMAC, Basic認証
- **冪等性**: Idempotency-Keyヘッダー対応
- **Rate Limiting**: Retry-Afterヘッダー対応
## モジュール構成
```
libs/
└── idp-server-platform/ # プラットフォーム基盤
└── .../platform/
├── http/
│ ├── HttpRequestExecutor.java
│ └── retry/
│ └── RetryStrategy.java
├── mapper/
│ ├── MappingRule.java # マッピングルール
│ ├── FunctionSpec.java # 関数仕様
│ ├── ConditionSpec.java # 条件仕様
│ ├── TypeConverter.java # 型変換
│ ├── ObjectCompositor.java # オブジェクト合成
│ └── functions/
│ ├── FormatFunction.java
│ ├── TrimFunction.java
│ ├── ReplaceFunction.java
│ ├── RegexReplaceFunction.java
│ └── ... (その他のマッピング関数)
└── auth/
├── OAuth2Authenticator.java
└── HmacAuthenticator.java
```
## MappingRule
`idp-server-platform/mapper/MappingRule.java` 内の実際の構造:
```java
public class MappingRule {
String from; // JSONPathソース
Object staticValue; // 静的値(fromの代わり)
String to; // マッピング先
List<FunctionSpec> functions; // 変換関数
ConditionSpec condition; // 条件
public MappingRule(String from, String to) {
this.from = from;
this.to = to;
}
public MappingRule(
String from,
String to,
List<FunctionSpec> functions
) {
this.from = from;
this.to = to;
this.functions = functions;
}
}
```
## Mapping Rule設定
```json
{
"mapping_rules": [
{
"from": "$.response.user.id",
"to": "external_user_id"
},
{
"from": "$.response.user.roles",
"to": "custom_properties.roles",
"functions": [
{
"name": "join",
"args": {
"separator": ","
}
}
]
}
]
}
```
## Mapping Functions
`idp-server-platform/mapper/functions/` 内に実装:
| クラス | 説明 | 使用例 |
|--------|------|--------|
| `FormatFunction` | テンプレート置換 | `{"template": "Bearer {{value}}"}` |
| `TrimFunction` | 空白除去 | - |
| `ReplaceFunction` | 文字列置換 | `{"from": "a", "to": "b"}` |
| `RegexReplaceFunction` | 正規表現置換 | `{"pattern": "...", "replacement": "..."}` |
**使用場所**: Federation(userinfo_mapping_rules)、Identity Verification(mapping_rules)
## HTTP Request Executor
`idp-server-platform/http/` 内:
HTTP Request Executorは、リトライロジックとRate Limiting対応を提供します。
## E2Eテスト
```
e2e/src/tests/
└── (外部連携は各機能のテスト内で検証)
├── integration/ida/ # Identity Verification外部連携
└── usecase/advance/ # Federation外部連携
```
## コマンド
```bash
# ビルド
./gradlew :libs:idp-server-platform:compileJava
# テスト
cd e2e && npm test -- integration/ida/
cd e2e && npm test -- usecase/advance/
```
## トラブルシューティング
### HTTP Request失敗
- URLが正しいか確認
- 認証情報(OAuth, HMAC)を確認
### MappingRuleが動作しない
- JSONPath (`from`) が正しいか確認
- ソースデータの構造を確認
- FunctionSpecの設定を確認
### 変換関数が失敗
- 関数名が正しいか確認(FormatFunction, TrimFunction等)
- 関数のargsが正しいか確認
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!